module utils.cacheutil;

import cachetools.cache;
import core.time : hours;
import std.experimental.allocator.mallocator : Mallocator;

Cache2Q!(string, string, Mallocator) cacheData = null;

static this()
{
    if (cacheData is null)
    {
        cacheData = new Cache2Q!(string, string);
        cacheData.size = 2048;
        cacheData.ttl = 2.hours;
    }
}

// /** 
//  * 数据缓存类
//  */
// public class DataCache
// {

//     // 单例
//     private static DataCache _dataCache = null;

//     // 存储缓存的数据
//     private Cache2Q!(long, string, Mallocator) _cacheData;

//     private this()
//     {
//         _cacheData = new Cache2Q!(long, string);
//     }

//     /** 
//      * 获取数据缓存实例
//      * Returns: DataCache
//      */
//     public static DataCache getDataCacheInstance()
//     {
//         if (_dataCache is null) // 为null时创建
//         {
//             _dataCache = new DataCache();
//             return _dataCache;
//         }

//         return _dataCache;
//     }

//     /** 
//      * 获取缓存数据
//      * Params:
//      *   key = long = key值
//      * Returns: string
//      */
//     public string getCacheData(long key)
//     {
//         return _cacheData.get(key).get;
//     }

//     /** 
//      * 设置缓存数据
//      * Params:
//      *   key = long = key值
//      *   value = string = value值
//      */
//     public void setCacheData(long key, string value)
//     {
//         _cacheData.put(key, value);
//     }

// }
